1. Field of the Invention
This invention relates generally to collaboration suite applications, and more particularly, to collaboration suite functionality in a client-server architecture.
2. Description of the Related Art
Collaboration suite applications typically include functionality such as email messaging, calendaring, and contact storage and retrieval, where email messages, calendar appointments, contacts, tasks, folders, documents, files, etc. are commonly referred to as “mailbox items.” The ZIMBRA COLLABORATION SUITE® from Zimbra, Inc. (San Mateo, Calif.), MICROSOFT EXCHANGE® and MICROSOFT OUTLOOK® from Microsoft Corp. (Redmond, Wash.), LOTUS NOTES® from IBM (Armonk, N.Y.) are examples of collaboration suite applications. YAHOO! MAIL® from Yahoo! Inc. (Sunnyvale, Calif.) and GMAIL® from Google Inc. (Menlo Park, Calif.) are e-mail applications which are also part of collaboration suites.
A collaboration suite application sometimes has a client-server architecture, where the client portion resides on a user device. The user device can include a personal computer, a MAC® computer, various handheld devices including personal digital assistants (PDAs) such as a TREO® device from Palm, Inc. (Sunnyvale, Calif.) a BLACKBERRY® device from Research In Motion Limited (Canada), a cell phone, and so on. It is to be noted that this list is in no way meant to be exhaustive.
As an example, the BLACKBERRY® device is discussed below in further detail. The BLACKBERRY® device is a wireless handheld device which includes the usual collaboration suite applications such as email, calendaring, contacts, to-do lists, etc. BLACKBERRY® devices are very popular with some businesses, where they are primarily used to provide e-mail access to roaming employees. To fully integrate the BLACKBERRY® device into a company's systems, the installation of BLACKBERRY ENTERPRISE SERVER® (BES) is required. FIG. 1 shows a BES machine 100, which is a client to the MICROSOFT EXCHANGE SERVER® 110. The BES machine 100 includes the BES 130 which uses MICROSOFT® Messaging API (MAPI) 125. The MICROSOFT EXCHANGE® MAPI Provider 120 also resides on the BES machine 100, and is used to communicate bidirectionally with the Microsoft Exchange Server MICROSOFT EXCHANGE SERVER® via a network 150. The BES machine 100 is typically deployed and managed within the enterprise by messaging administrators (for example, the individuals already responsible for managing MICROSOFT EXCHANGE®) or sometimes a dedicated IT person, usually called the BLACKBERRY® or BES Administrator. It is to be noted that the architecture described with respect to FIG. 1 may be equally applicable to other collaboration suite servers (e.g., LOTUS DOMINO® Servers from IBM (Armonk, N.Y.), GROUPWISE® from Novell (Waltham, Mass.), etc.).
BES 130 can act as a sort of e-mail relay for corporate accounts so that users always have access to their mailbox items. The software monitors the mailbox on the MICROSOFT EXCHANGE SERVER® 110 via MAPI 120, and when a new message comes in, it picks up the message and the messages are then relayed to the user's wireless provider (not shown in FIG. 1), which in turn delivers them to the user's BLACKBERRY® device (not shown in FIG. 1).
In such a scenario, the MICROSOFT EXCHANGE SERVER® 110 experiences additional load because all of the operations that the BES 130 conducts (e.g., those requested by the user) are conducted off the collaboration suite server 110. Additional load is generated by any read or search operation. Examples of such operations include the user device fetching attachment content, the device executing searches or filters on the collaboration server, the device fetching large message bodies, the device needing to resynchronize its contents, and so on.
It is to be noted that the BES's 130 responsibility for synchronizing multiple mailboxes and devices (not shown) aggravates the problems discussed above.
A cache mode, where a local cache of your mailbox is stored (e.g., on a user device) is available for some programs. For instance, in MICROSOFT OUTLOOK 2003®, cached mode is a mechanism that keeps users' MICROSOFT EXCHANGE SERVER® mailboxes synchronized with offline folders that reside on their local hard disks. When MICROSOFT OUTLOOK® is used with a MICROSOFT EXCHANGE SERVER® 110 e-mail account, a copy of the user's mailbox is stored on the user's computer. This copy provides quick access to data and is frequently updated with the mail server. This provides for a better user experience. If the user works offline, whether by choice or due to a connection problem, his data is still available to him instantly wherever he is, even if a connection from the user's computer to the computer running Exchange server isn't available.
There are several limitations on such existing cache modes. For one thing, a cache mode is not available for scenarios where the mailboxes of multiple users need to be synchronized (e.g., using BES). In particular, the need to synchronize multiple mailboxes and devices leads to the need for the more efficient and scalable cached mode requirement. Not having a cache mode leads, as discussed above, to an increased load on the collaboration suite server. It also leads to a less reliable user experience. Moreover, even in cases where the cached mode does exist, as the size of a user's mailbox gets large, the large size of the caches can lead to disk capacity and performance issues. Further, the size of the user's mailbox is relevant in some cases (e.g. MICROSOFT OUTLOOK®) because an .OST file is often used to store cached data. Performance of an .OST file degrades significantly as mailbox size grows, especially with multi-gigabyte mailboxes. Moreover, for existing cache modes, the initial synchronization between the caches and the Collaboration Suite Server puts a significant load on network bandwidth and on the Collaboration Suite Server. For instance, with MICROSOFT OUTLOOK® cache mode, during the initial synchronization, all pre-existing MICROSOFT EXCHANGE® data has to be copied from the MICROSOFT EXCHANGE SERVER® to the .OST file being used for a user's cache. Further, there is no seamless periodic deletion of mailbox items across various folders, unless the user sets such filters for each folder individually. Moreover, there is no ability to get an individual mailbox item “on-demand” from the server if it is not stored on the cache.
There is thus a need for a cached mode for some applications to manage the load on the collaboration suite server. Further, there is a need for an efficient and scalable cached mode for synchronizing multiple mailboxes for multiple users of a collaboration suite application with their user devices. Further still, there is a need to manage the initial synchronization between the collaboration suite server and the cache. Moreover, there is a need for the ability to reap simply and easily across the user's mailbox. Furthermore, there is a need to obtain on demand mailbox items which are not in the cache.